package middlewares

import (
	"PetApi/utils"
	"github.com/gin-gonic/gin"
)

type page struct {
	Page  int `json:"page" form:"page"`
	Limit int `json:"limit" form:"limit"`
}

// Page 分页中间件
func Page() gin.HandlerFunc {
	return func(ctx *gin.Context) {
		p := page{}
		_ = utils.Bind(ctx, &p)
		if p.Page <= 0 {
			p.Page = 1
		}
		if p.Limit <= 0 {
			p.Limit = 20
		}
		ctx.Set("page", p.Page)               // 页码
		ctx.Set("limit", p.Limit)             // 查询条数
		ctx.Set("offset", (p.Page-1)*p.Limit) // 跳过条数
		ctx.Next()
	}
}
